Блог компании Os_Engine |ALOR Open API. + 174 бесплатных робота к нему с открытым кодом. Тренд, Арбитраж, Пары, Треугольники, Скринеры, Горизонтальные объёмы.

Камрады! Коннектор к ALOR OPEN API добавлен к OsEngine около трёх недель назад. Бета тесты завершены. Пора торговать!

ALOR Open API. + 174 бесплатных робота к нему с открытым кодом. Тренд, Арбитраж, Пары, Треугольники, Скринеры, Горизонтальные объёмы.


Из хорошего.

1) Это очень классный коннектор в плане стека. Как крипта. Rest + web sockets. Это современно, это общепринятые стандарты, которые на сотнях бирж существуют. Короче — огонь.

2) Быстрый. Пока в глюках не замечен, только если палкой не тыкаешь.

3) Единственный пока в своём роде на MOEX. Лучшее, что есть из бесплатного. Им мог стать Тиньков Апи первой версии. Но там камрады стек трейдинговый не знали, кто его делал. А вторая команда разработчиков стек технологический изменила в худшую сторону.

4) Сообщения об ошибках при запросах прекрасны. И цифры, и текст. Очень редко, где такое. Спасибо. Это ускорило разработку. Отдельный привет команде за это. Красавчики.

 

Из не оч. Крутого.

Три различных типа времени приходит из шлюзов. Это супер странно. Вообще нигде такого не видел. Поэтому ставим на ПК МОСКОВСКОЕ ВРЕМЯ, иначе могут быть различные странности.



( Читать дальше )

Блог компании Os_Engine |ConnectorCandles 2. Обзор регионов. Коннекторы к OsEngine #28

Продолжаем разговаривать про класс, предоставляющий данные для источников в OsEngine. А именно про класс ConnectorCandles. И в данной статье поговорим о его коде. Что там есть.
ConnectorCandles 2. Обзор регионов. Коннекторы к OsEngine #28

Сам класс находится в проекте вот здесь:



( Читать дальше )

Блог компании Os_Engine |Стандарты кода #7. Циклы и LINQ. Коннекторы для OsEngine #27.

В данной статье поговорим об использовании циклов. Какие нужны, а какие смогут уронить наш замечательный терминал. Кроме того, поговорим о синтаксическом сахаре из библиотеки LINQ, которая, как не сложно догадаться по динамике этих записей, тоже под запретом. Почему и как?

Стандарты кода #7.  Циклы и LINQ. Коннекторы для OsEngine #27. 

Цикл for – РАЗРЕШЁН.

Один из самых быстрых циклов, которые существуют. Это основная боевая единица, которую нужно использовать.

Данный цикл не создаёт дополнительных методов в памяти и не является потоконебезопасным. Практически любую ситуацию внутри него можно обработать. Также он позволяет ставить внутри себя точки останова.

 

Цикл while – РАЗРЕШЁН.

Бесконечный цикл с условием продолжения.

Также разрешён к использованию. Имеет все плюсы цикла for.

 

Цикл foreach – ЗАПРЕТ.

Этот цикл создаёт метод внутри памяти и не даёт контролировать выбор объекта. В случае, если есть какие-то проблемы с перечислением или листом, выбрасывается неконтролируемое исключение.

Данный цикл нельзя использовать в многопоточном окружении при работе с листами.



( Читать дальше )

Блог компании Os_Engine |ConnectorCandles #1. Назначение, использование в проекте. Коннекторы к OsEngine #26

Продолжаем разбираться со слоями в OsEngine. И впереди у нас три статьи про класс ConnectorCandles.
Смотрим на картинку:

ConnectorCandles #1. Назначение, использование в проекте. Коннекторы к OsEngine #26

 


ConnectorCandles.

Класс, предоставляющий данные для источников в роботе. Хранит в себе информацию по подключению. Содержит внутри процедуры для переподключения к серверам в случае разрыва соединений и изменении настроек со стороны пользователя.

Находится в проекте вот здесь:



( Читать дальше )

Блог компании Os_Engine |Стандарты кода #6. Многопоточность. Task, Asуnc. Коннекторы для OsEngine #25.

OsEngine невозможно ускорить многопоточностью в коннекторе. 98% всех задержек находятся в самих роботах. И от того, как их пишут пользователи, зависит скорость работы программы.

Стандарты кода #6. Многопоточность. Task, Asуnc. Коннекторы для OsEngine #25.

Так было не всегда… Были времена, когда казалось, что это не так. Но годы шли, OsEngine шлифовался и ускорялся. С модификацией Aserver, журналов и прочего всё больше становилось очевидно, что задержки именно в роботах.

На сегодняшний момент, даже подписка на 200 или 400 бумаг не ложат стандартную поточную архитектуру сервера, предложенную ниже.

Поэтому делаем, как тут написано. Время экспериментов закончено.

 

 

Один коннектор – оптимально два потока.

 

Полный и достаточный список потоков, которые могут и должны быть в любом сервере:

  1. Проверка жизни Вёбсокета. Это поток номер один. Если есть вёбСокет, данный поток должен быть в обязательном порядке.
  2. Конвертер сообщений. Поток номер два. В бесконечном цикле занимается разбором входящих сообщений от биржи/брокера.

Никакие другие потоки создавать не нужно. Только если этого требует само АПИ. Плюс, это должен быть THREAD, а не Task.



( Читать дальше )

Блог компании Os_Engine |Стандарты кода #5. Архитектурный ад. Сколько нужно файлов и папок. Коннекторы для OsEngine #24

Проблема, о которой поговорим сегодня – генерация хитрых архитектур для коннектора. Сразу же скажу, что коннектор в рамках OsEngine, насколько бы он для вас сложным не был, — очень простая штука, если пользоваться моими советами и вести тесты. Настолько простая, как складной нож. Он очень прост и не нуждается ни в каких дополнениях.

Складной нож не нужно прикручивать к палке, чтобы им управлять.

Складной нож не требует постоянного отмачивания в машинном масле.

И конечно же, складной нож не нуждается в перевязывании изолентой с другими предметами —  топорами или вилками. В этом нет смысла.

Стандарты кода #5. Архитектурный ад. Сколько нужно файлов и папок. Коннекторы для OsEngine #24

Совместные классы-парсеры для разных коннекторов.

Самое худшее, что можно сделать, – придумать класс, который будет использоваться разными коннекторами для парсинга данных. Сколько бы я этого не видел, это почти неизбежно приводит к неработоспособности коннектора.

Всё это заканчивалось переделыванием с нуля.

Поэтому:

Совместные классы-парсеры, вёбСокет-обёртки и рест-оболочки для коннекторов запрещены.



( Читать дальше )

Блог компании Os_Engine |Стандарты кода #4. Вложенность и оформление методов. Коннекторы для OsEngine #23

Короткая статья о методах и их оформлении. Данная часть стандартов направлена на людей в разной стадии понятия дзена программирования. Людей, которые находятся в стадии эксперимента на уровне написания самого кода внутри методов, обработчиков и свойств. Их, абсолютно также, как и во время именования переменных, можно написать так, что другие программисты понимать не будут. Поговорим об этом…

Стандарты кода #4. Вложенность и оформление методов. Коннекторы для OsEngine #23

 

Количество строк в методах.

 

Некоторые программисты целенаправленно делают вместо 10 методов по 100 строк, 200 методов по 10 строк, искренне считают, что это хорошо. Суть в том, что разбитый на такие мелкие части код легче тестировать, когда у Вас в команде есть тестеры, и вероятно в больших коммерческих проектах это чистое благо. Однако. Имея в команде пару человек, которые не будут за Вами писать тесты, это ЧИСТОЕ ЗЛО.

Некоторые программисты, кто делает вместо 10 методов Один, также искренне полагают, что это круто. Используют тонну синтаксического сахара, вызовы методов в методах и прочее… Это в свою очередь вызвано юношеским максимализмом и увлечением языками вроде Питона, что провоцирует людей на эксперименты с сахаром. Добавляя такое в проект, Вы также наносите ему непоправимый ущерб.



( Читать дальше )

Блог компании Os_Engine |Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22

Каждый коннектор в OsEngine должен (в итоге, а тем более новые) содержать определённый набор регионов. В которых должны располагаться определённые методы, свойства и обработчики.

Стандарты кода #3. Регионы внутри коннектора. Коннекторы к OsEngine #22

Таким образом, каждый программист, кто хоть чуть-чуть знаком с одним коннектором, автоматически начнёт понимать, как устроены другие. И как же они функционируют. Без проблем сможет ориентироваться внутри коннекторов, которые открыл впервые.

  1. Регионы должны быть отмечены номерами.
  2. Безномерные регионы не допустимы.
  3. Их должно быть минимум 10 штук. Максимум 20. Но постарайтесь разместиться в стандартных!
  4. Код вне региона не допустим.

Далее, каждый регион будет показан на примере коннектора к бирже криптовалют BitGet, расположенном в проекте вот здесь:



( Читать дальше )

Блог компании Os_Engine |Пацанчики из Васюринской щемят городских. Итоги корпоративного блога Os Engine за ноябрь 2023

Прошло три месяца и пара дней, как в нашем богоспасаемом корпоративном блоге вышла первая статья. Это не поддаётся никакой логике, но дела идут лучше раз в пять, чем я планировал.

Поддержка колоссальная. За что сразу ОГРОМНОЕ, ДУШЕВНОЕ СПАСИБО!!!

Пацанчики из Васюринской щемят городских. Итоги корпоративного блога Os Engine за ноябрь 2023

Но обо всём по порядку.

 

1. Скорость набора рейтинга УДВОИЛАСЬ.

 



( Читать дальше )

Блог компании Os_Engine |Нейминг объектов. Стандарты кода #2. Коннекторы к OsEngine #21

Именование переменных нормальным языком – важнейший признак уважения к другим программистам. А первый признак неуважения одного программиста к другому – запутанные названия переменных.

Можно было бы просто сказать, следи за тем, что пишешь. Пожалуйста обращай внимание на переменные. Но это не наш метод)

Нейминг объектов. Стандарты кода #2. Коннекторы к OsEngine #21

Мы пойдём от обратного. Поговорим про один из самых распространённых способов защитить код от использования конкурентами, наиболее часто используемый в среде разработки ПО. Об обфускации. А затем обсудим то, как делать не нужно.

 

Обфускация кода.

Процесс запутывания названия переменных и методов с целью недопущения использования этого кода другими программистами.

На данный момент существуют сотни программ, помогающих с этим самым запутыванием. И обфускация безусловно атомное оружие в руках противоборствующих команд разработчиков.

Если Вы хотите, чтобы код был нечитаемый и не был никем переиспользован, Вы должны дать вашим методам, переменным, событиям, etc… нечитаемые названия.



( Читать дальше )

....все тэги
UPDONW
Новый дизайн